Language Constructs and Runtime Systems for Compositional Parallel Programming
نویسندگان
چکیده
In task-parallel programs, diverse activities can take place concurrently, and communication and synchronization patterns are complex and not easily predictable. Previous work has identiied compositionality as an important design principle for task-parallel programs. In this paper, we discuss alternative approaches to the realization of this principle. We rst provide a review and critical analysis of Strand, an early compositional programming language. We examine the strengths of the Strand approach and also its weaknesses, which we attribute primarily to the use of a specialized language. Then, we present an alternative programming language framework that overcomes these weaknesses. This framework uses simple extensions to existing sequential languages (C++ and Fortran) and a common runtime system to provide a basis for the construction of large, task-parallel programs. We also discuss the runtime system techniques required to support these languages on parallel and distributed computer systems.
منابع مشابه
Towards a Generalised Runtime Environment for Parallel Haskells
Implementations of parallel dialects (or: coordination languages) on a functional base (or: computation) language always have to extend complex runtime environments by the even more complex parallelism to maintain a high level of abstraction. Starting from two parallel dialects of the purely functional language Haskell and their implementations, we generalise the characteristics of Haskell-base...
متن کاملNested schedulers for heterogeneous parallelism
The rise of commodity multicore processors makes parallel computing available to the masses. Traditional parallel languages focus on large-scale scientific computing and are not well suited to programming the applications one typically finds on desktop systems. Such desktop applications are better supported by heterogeneous parallel languages that provide a spectrum of parallel constructs worki...
متن کاملEden - Parallel Functional Programming with Haskell
Eden is a parallel functional programming language which extends Haskell with constructs for the definition and instantiation of parallel processes. Processes evaluate function applications remotely in parallel. The programmer has control over process granularity, data distribution, communication topology, and evaluation site, but need not manage synchronisation and data exchange between proces...
متن کاملA Generalized Streaming Model for Concurrent Computing
Multicore parallel programming has some very difficult problems such as deadlocks during synchronizations and race conditions brought by concurrency. Added to the difficulty is the lack of a simple, wellaccepted computing model for multicore architectures— because of that it is hard to develop powerful programming environments and debugging tools. To tackle the challenges, we promote a generali...
متن کاملStrand and Pcn: Two Generations of Compositional Programming Languages Strand and Pcn: Two Generations of Compositional Programming Languages
Two parallel languages and their associated programming systems are reviewed and evaluated. Both Strand and PCN are designed to facilitate parallel program development by providing an expressive high-level notation; by integrating tools for debugging, performance analysis, etc.; and by providing portability across diier-ent parallel computers. Both provide explicit parallel constructs and use s...
متن کامل